import { defineConfig } from 'vite';
import dts from 'vite-plugin-dts';
export default defineConfig({
  build: {
    lib: {
      entry: './src/index.ts',
      name: 'SnobyUtils',
      fileName: (format) => (format === 'es' ? 'index.mjs' : 'index.cjs'),
    },
    rollupOptions: {
      external: ['vite', 'dayjs', '@vueuse/core'],
      // 为外部依赖提供全局变量名
      output: {
        globals: {
          vite: 'vite', // 假设用户全局环境有 vite 变量
          dayjs: 'dayjs', // 对应 dayjs 的全局变量名
          '@vueuse/core': 'VueUse', // VueUse 的全局变量名
        },
        // 确保UMD格式有正确的导出名称
        exports: 'named',
      },
    },
    // 构建时清空输出目录
    emptyOutDir: true,
    // 生成sourcemap便于调试
    sourcemap: true,
  },
  plugins: [
    dts({
      outDir: 'dist',
      insertTypesEntry: true, // 生成 types/index.d.ts 入口
      exclude: ['**/__tests__/**'], // 排除测试文件
      compilerOptions: {
        declarationMap: true, // 生成声明文件的sourcemap
      },
    }), // 自动将 .d.ts 文件输出到 dist 目录
  ],
});
